<?php


header('Content-type:text/html;charset=utf-8');

//多态

//一个接口或者类的多种形态


//创建一个接口，用来规范运行的方法
interface Computer{
	public function verstion();      //使用什么电脑（笔记本或者台式机）
	public function work();          //怎么样工作
}


//创建一个笔记本类
class NoteComputer implements Computer{
	public function verstion(){
		echo '笔记本';
	}

	public function work(){
		echo 'NoteComputer在运行';
	}
}

//创建一个台式机类
class DesktopComputer implements Computer{
	public function verstion(){
		echo '台式机';
	}

	public function work(){
		echo 'DesktopComputer在运行';
	}
}



//创建一个用户
class Person{
	//类里面创建一个使用电脑的方法
	public function run($type){          //这里把对象的引用传递进来，实现多态
		//当传入的是$NoteComputer ， $type->verstion(); 就是$NoteComputer->version();
		//当传入的是$DesktopComputer ， $type->verstion(); 就是$DesktopComputer->version();
        $type->verstion(); 
        $type->work();
	}
}


//创建一个笔记本
$NoteComputer = new NoteComputer();
// $NoteComputer->verstion();
// $NoteComputer->work();      //这样也可以调用，但是一般我们不会电脑自己运行，需要人来使用

//创建一个台式机
$DesktopComputer = new DesktopComputer();


//所以，要先创建一个人
$Person = new Person();  
//使用电脑  
$Person->run($NoteComputer); //这里传入一个对象，叫做对象引用的传递